﻿using System;
using System.Collections.Generic;
using System.Windows;

namespace XamlMvp
{
    public interface IPresenterBinder
    {
        IPresenterContext Context { get; set; }

        void RegisterPage<TView, TPresenter>(Func<TView, IDictionary<string, object>, PagePresenter<TView>> action) where TView : IViewPage;
        void RegisterControl<TView, TPresenter>(Func<TView, Presenter<TView>> action) where TView : IView;        
       
        void Bind(UIElement view);
        void Bind(UIElement view, IDictionary<string, object> state);

        Type Find(string typeString);
    }
}
